При обычном предварительном просмотре изображение формируется функцией OnDraw. В данном случае так сделать мы не можем. Ну не сможем и ладно. Можно по другому. Для начала установим количество страниц. У нас она будет одна. Я уже писал как это делать.
void CTestMemoView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
pInfo->SetMaxPage(1);
};
Куда же нам поместить печать карточки ???? Есть куда !!! В OnPrint
мы спокойно можем поместить. Там тоже можно печатать и не только колонтитулы.
Помещаем. void CTestMemoView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
pDC->Rectangle(10,10,1000,1000);
pDC->TextOut(40,100,m_pSet->m_NAME);
pDC->TextOut(40,200,m_pSet->m_DAY);
CRecordView::OnPrint(pDC, pInfo);
};
Как видите всё оказалось по идиотски просто.... Мы ссылаемся на наш
m_pSet и получаем поля текущей записи. Вся сложность была в том где
печатать.
Это практически всё :-) Запускаем и смотрим.

А под конец маленький прикол в плане того, что в Microsoft работают тоже люди. Давайте проведем эксперимент. Закоментируйте установку количества страниц.
void CTestMemoView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// pInfo->SetMaxPage(1);
}
Запустите приложение и скажите, что будете смотреть две страницы.

Всё нормально. Количество страниц не определенно. Так теперь раскоментируйте установку, скомпилируйте и запустите приложение снова. Посмотрите на предварительном просмотре.

Каково ???? :-)))) Если Вы нажмете одна страница, то она погаснет навсегда. Это доказывает, что было задумано не так, а данный момент просто проспали ;-))).